// utils/toast.js

let $u = null

/**
 * 初始化 Toast 工具，需在 App 启动时传入 $u
 * @param {Object} uInstance - uView 的实例，来自 app.config.globalProperties.$u
 */
export function initToast(uInstance) {
  $u = uInstance
}

/**
 * 统一 Toast 提示函数
 * @param {String} message - 提示文字
 * @param {Object} options - 配置项
 */
function Toast(message, options = {}) {
  if (!$u) {
    console.error('[Toast] uView 未初始化，请在 main.js 中调用 initToast(app.config.globalProperties.$u)')
    return
  }

  const defaultOptions = {
    type: 'text',      // 'success' | 'error' | 'loading' | 'text'
    duration: 2000,
    mask: false,
    wordWrap: false,
	text: message,
    ...options
    
  }

  $u.toast(defaultOptions)
}

// 快捷方法
Toast.success = (message, options) => {
  Toast(message, { type: 'success', ...options })
}

Toast.error = (message, options) => {
  Toast(message, { type: 'error', ...options })
}

Toast.loading = (message = '加载中', options) => {
  Toast(message, {
    type: 'loading',
    duration: 0, // 持久显示，需手动关闭
    mask: true,
    ...options
  })
}

// 关闭 Toast
Toast.hide = () => {
  if ($u) $u.toastHide()
}

export default Toast